import { Module } from '@nestjs/common';
import { JwtModule } from '@nestjs/jwt';
import { SequelizeModule } from '@nestjs/sequelize';

import App_configuration from '@/config/configuration';
import { FileCollectionModel } from '@/models/file_collection.model';
import { Submitter } from '@/models/submitter.model';
import { XmwUser } from '@/models/xmw_user.model';
import { OperationLogsModule } from '@/modules/system/operation-logs/operation-logs.module';

import { FileCollectionController } from './file_collection.controller';
import { FileCollectionService } from './file_collection.service';

@Module({
  // 将实体 导入到这个module中，以便你这个module中的其它provider使用
  imports: [
    SequelizeModule.forFeature([FileCollectionModel, Submitter, XmwUser]),
    JwtModule.register({
      // 这里不设置 token 过期时间，过期时间在 redis 里面设置
      secret: App_configuration().secret,
    }),
    OperationLogsModule,
  ],
  // 由 Nest 注入器实例化的提供者，并且可以至少在整个模块中共享
  controllers: [FileCollectionController],
  // 通过 @Module 装饰器映射 Crotroller
  providers: [FileCollectionService],
})
export class FileCollectionModule {}
